import request from '@/api/request'
const url = '/api'

// 获得对象或列表-R
export function get(params,cb,errCb) {
  request({
    url: url+'/get',
    method: 'post',
    data: params
  })
  .then( res=> {
    if(res.data.code==200)
      cb(res.data);
    else
      errCb(res.data.msg)
  })
  // .catch( err=> {
  //   console.log('get-error:'+err)
  // });
}
// 插入新记录-C
export function insert(table,obj,cb,errCb) {
    let params = {
    'tag': table
  };
  params[table] = obj;
  request({
    url: url+'/post',
    method: 'post',
    data: params
  })
  .then( res=> {
    if(res.data.code==200)
      cb(res.data);
    else
      errCb(res.data.msg)
  })
  .catch( err=> {
    console.log('insert-error:'+err)
  });
}
// 更新记录-U
export function update(table,obj,cb,errCb) {
  let params = {
    'tag': table
  };
  params[table] = obj;
  request({
    url: url+'/put',
    method: 'post',
    data: params
  })
  .then( res=> {
    if(res.data.code==200)
      cb(res.data);
    else
      errCb(res.data.msg)
  })
  .catch( err=> {
    console.log('update-error:'+err)
  });
}
// 删除记录-D
export function remove(params,cb,errCb) {
  request({
    url: url+'/delete',
    method: 'post',
    data: params
  })
  .then( res=> {
    if(res.data.code==200)
      cb(res.data);
    else
      errCb(res.data.msg)
  })
  .catch( err=> {
    console.log('remove-error:'+err)
  });
}
  // 添加或修改申请信息
export function edit(table,obj, cb, errCb) {
  let params = {
    'tag': table
  }
  params[table] = obj;
  let fun = null
  if(apply.id>0)
    fun = update
  else
    fun = insert
  fun(params)
    .then( res=> {
      var b = res.data.code==200&&res.data.msg=='success'
      b?cb():errCb()
    })
    .catch(function (err){
      console.log('error:'+err);
    });
}

// 获得当前登录用户信息
export function getLoginUser(cb,errCb) {
  request({
    url: '/api/getCurrentUser',
    method: 'get',
  })
  .then( res=> {
    if(res.data.state=='ok')
      cb(res.data);
    else
      errCb(res.data.msg)
  })
  .catch( err=> {
    console.log('getLoginUser-error:'+err)
  });
}
// 登录
export function login(loginId,loginPwd,cb,errCb) {
  let params = {
    'loginId': loginId,
    'loginPwd': loginPwd,
  }
  request({
    url: '/api/login',
    method: 'post',
    data: params,
  })
  .then( res=> {
    if(res.data.state=='ok') {
      cb(res.data);
    }
    else
      errCb(res.data.msg)
  })
  .catch(function (error){
    console.log('login-error:'+error)
  });
}
// 注册
export function regist(params,cb,errCb) {
  request({
    url: '/api/regist',
    method: 'post',
    data: params,
  })
  .then( res=> {
    if(res.data.state=='ok')
      cb();
    else
      errCb(res.data.msg)
  })
  .catch(function (error){
    console.log('regist-error:'+error)
  });
}

// 获得服务器运行信息
export function getServerInfo() {
  let params = {'func()': 'serverInfo()'}
  return get(params)
}

// 返回字典值列表，
export function getDicts(objectName, fieldName, cb, errCb) {
  let params = {
    'Dicts[]': {
      'Dicts': {
        '@column': 'name:text,value:id',
        'object': objectName,
        'field': fieldName
      }
    }
  };
  get(params,
    data => {
      cb(data['Dicts[]']);
    },
    errCb);
}
